//! 错误处理模块
//!
//! 包含Rust中的错误处理机制，如：
//! - panic!宏
//! - Result类型
//! - Option类型
//! - 标准错误类型
//!
//! ## 知识点总结
//!
//! | 模块 | 主要内容 | 关键概念 |
//! |------|---------|---------|
//! | panic | panic!宏 | 不可恢复错误 |
//! | result | Result类型 | 可恢复错误 |
//! | option | Option类型 | 可能不存在的值 |
//! | std_errors | 标准错误 | Box<dyn Error> |
//!
//! ## 使用示例
//!
//! ```rust
//! // Option 使用示例
//! let some_number = Some(5);
//! let absent_number: Option<i32> = None;
//!
//! match some_number {
//!     Some(n) => println!("数字是: {}", n),
//!     None => println!("没有数字"),
//! }
//!
//! // Result 使用示例
//! fn divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
//!     if divisor == 0.0 {
//!         Err("除数不能为零")
//!     } else {
//!         Ok(dividend / divisor)
//!     }
//! }
//!
//! match divide(10.0, 2.0) {
//!     Ok(result) => println!("结果: {}", result),
//!     Err(e) => println!("错误: {}", e),
//! }
//!
//! // 使用 ? 操作符简化错误处理
//! fn read_file_content() -> Result<String, std::io::Error> {
//!     use std::fs;
//!     let content = fs::read_to_string("test.txt")?;
//!     Ok(content)
//! }
//!
//! // 使用标准库错误类型
//! use std::error::Error;
//! fn handle_error<E: Error>(error: E) {
//!     println!("错误: {}", error);
//!     if let Some(source) = error.source() {
//!         println!("原因: {}", source);
//!     }
//! }
//! ```

pub mod panic;
pub mod result;
pub mod option;
pub mod std_errors;

// 为各个模块的演示函数添加#[test]属性
#[test]
fn test_panic() {
    panic::demonstrate_panic();
}

#[test]
fn test_result() {
    result::demonstrate_result();
}

#[test]
fn test_option() {
    option::demonstrate_option();
}

#[test]
fn test_std_errors() {
    std_errors::demonstrate_standard_errors();
}
